package naito_rescue.communication.team;

import java.util.*;
import sample.*;
import rescuecore2.messages.*;
import rescuecore2.worldmodel.*;
import rescuecore2.Constants;
import rescuecore2.standard.components.*;
import rescuecore2.standard.entities.*;
import rescuecore2.standard.messages.*;
import rescuecore2.misc.geometry.*;
import naito_rescue.*;
import naito_rescue.agent.*;
import naito_rescue.communication.team.*;
import naito_rescue.communication.channel.*;
import naito_rescue.object.*;
import naito_rescue.message.*;
import naito_rescue.message.manager.*;

public interface ICommunicationTeam
{
	//FireBrigadeがSubscribeするチャネルを返す
	public List<AbstractChannel> getChannelToFB();
	//PoliceForceがSubscribeするチャネルを返す
	public List<AbstractChannel> getChannelToPF();
	//AmbulanceTeamがSubscribeするチャネルを返す
	public List<AbstractChannel> getChannelToAT();
	//他のコミュニケーションチームに対する通信チャネルを返す
	public List<AbstractChannel> getChannelsToOtherTeam();
	//自分がSubscribeするチャネルを返す
	// ... これはなくてもいいかもしれない(将来的に削除の可能性)
	public AbstractChannel getMyChannel();
	//自チームのメンバを返す
	public List<StandardEntity> getMembers();
	//自分(sender)がメッセージを送信するターンかどうかを返す
	public boolean isMyTurn(StandardEntity sender, int timestep);
	//エージェント一体あたりの帯域を返す
	public int getBandwidthPerAgent();
}
